package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/*
   知识点2
* 数组向集合装换
* 数组只能转换为List集合
*/
public class ArrayToListDemo {
    public static void main(String[] args) {
        //一个String类型的数组
        String[] array = {"1", "2", "3", "4", "5", "6"};
        System.out.println(Arrays.toString(array));
        //数组的工具类 Arrays 中提供的asList方法可以将数组转换为List集合
        // 只能转换为List集合 将数组转换为集合后 集合不能增加和删除元素 会抛出异常
        List<String> list = Arrays.asList(array);
        System.out.println("List:" + list);


        /*
           list.add("7");
           java.lang.UnsupportedOperationException
           当对数组转换成的集合 进行增删操作时会抛出操作异常错误
           list其实集合中存放的其实相当于 数组外面套了一层集合的壳子
           数组是不可以直接在本体上进行增删操作的所以会出现场操作错误
        */

        /*
         * 若想对由数组转换而来的集合进行操作，需要创建一个新的集合并且存放由数组转换而来集合中的数据
         * 然后对新的集合在进行操作
         * */

        //所有集合都提供了一个参数为Collection的构造器，目的是在创建当前集合的同时包含集合中的所有元素
        //效果同 list2.addAll(list) 一样
        List<String> list2 = new ArrayList<>(list);
        list2.add("7");
        System.out.println("List2:" + list2);
    }
}
